/**
 * 跳转到添加|修改 机构部门的URL
 * 参数： 1 现在树选中的节点的id
 *  2 当前树选中的节点的名字
 *  3 操作类型 1 新增 2 修改 3 新增父级部门
 */
function addOrUpdOrgUrl(id, name, type) {
    //隐藏右键菜单
    hideRMenu();
    //iframe层
    layer.open({
        type: 2, //0（信息框，默认）1（页面层）2（iframe层）3（加载层）4（tips层）
        title: '新增机构|部门', //title支持三种类型的值，若你传入的是普通的字符串，如title :'我是标题'，那么只会改变标题文本；若你还需要自定义标题区域样式，那么你可以title: ['文本', 'font-size:18px;']，数组第二项可以写任意css样式；如果你不想显示标题栏，你可以title: false
        shadeClose: false, //是否点击遮罩关闭,默认：false,如果你的shade是存在的，那么你可以设定shadeClose来控制点击弹层外区域关闭
        shade: 0.8, //默认是0.3透明度的黑色背景（'#000'）。如果你想定义别的颜色，可以shade: [0.8, '#393D49']；如果你不想显示遮罩，可以shade: 0
        area: ['80%', '70%'], //宽高
        anim:1, // 弹出动画 默认：0 平滑放大。默认 1 从上掉落 2 从最底部往上滑入 3从左滑入 4从左翻滚 5渐显 6抖动
        resize:true, // 是否允许拉伸,默认情况下，你可以在弹层右下角拖动来拉伸尺寸。如果对指定的弹层屏蔽该功能，设置 false即可
        //success:null, //层弹出后的成功回调方法
        //cancel:null, //右上角关闭按钮触发的回调 该回调携带两个参数，分别为：当前层索引参数（index）、当前层的DOM对象（layero），默认会自动触发关闭。如果不想关闭，return false即可
        end:null, // 层销毁后触发的回调,无论是确认还是取消，只要层被销毁了，end都会执行，不携带任何参数
        content: '/user/addOrUpdOrgUrl.php?id=' + id + "&name=" + name + "&type=" + type //iframe的url
    });
}


/**
 * 显示右键菜单
 * @param type 类型
 * @param x 坐标
 * @param y 坐标
 */
function showRMenu(type, x, y) {
    //先隐藏再显示
    hideRMenu();
    $("#rMenu ul").show();
    $("#rMenu").css({"top":y+"px", "left":x+"px", "display":"block"});
}

/**
 * 隐藏右键菜单
 */
function hideRMenu() {
    $("#rMenu").hide();
}


/**
 * 鼠标右键事件-创建右键菜单
 * 参数：    1 标准的 js event 对象
 *          2 对应 zTree 的 treeId，便于用户操控
 *          3 鼠标右键点击时所在节点的 JSON 数据对象
 */
function zTreeOnRightClick(event, treeId, treeNode) {
    var zTree = $.fn.zTree.getZTreeObj("treeContainer");
    if (!treeNode) {
        //取消节点的选中状态
        zTree.cancelSelectedNode();
        showRMenu("root", event.clientX, event.clientY);
    } else if (treeNode && !treeNode.noR) { //noR属性为true表示禁止右键菜单
        if (treeNode.newrole && event.target.tagName != "a" && $(event.target).parents("a").length == 0) {
            zTree.cancelSelectedNode();
            showRMenu("root", event.clientX, event.clientY);
        } else {
            zTree.selectNode(treeNode);
            showRMenu("node", event.clientX, event.clientY);
        }
    }
}




$(function() {
    //隐藏右键菜单
    hideRMenu();
    /**
     * 鼠标点击事件不在节点上时隐藏右键菜单
     */
    $("body").bind(
        "mousedown", //鼠标按下
        function(event) {
            //如果选中的id不为rmenu，那么则隐藏
            if (!(event.target.id == "rMenu" || $(event.target).parents("#rMenu").length > 0)) {
                $("#rMenu").hide();
            }
        });

    laydate.render({
        elem: '#createDate' //指定元素
    });
});




/**
 * 树 右键菜单触发的函数
 */
function rightTree(parm){
    var zTree = $.fn.zTree.getZTreeObj("treeContainer");
    //获取选中的节点
    var node = zTree.getSelectedNodes();
    //唯一标识
    var id = node[0].id;
    var name = node[0].name;
    // alert("我被点击触发了" + console.log(z[0].id) +  z);

    if (parm == 'add'){
        addOrUpdOrgUrl(id, name, "1");

    } else if (parm == "addFather"){
        //隐藏右键菜单
        hideRMenu();
        addOrUpdOrgUrl(id, name, "3");

    } else if (parm == 'del'){
        //隐藏右键菜单
        hideRMenu();
        delOrg(id, name);

    } else if (parm == 'upd'){
        //隐藏右键菜单
        hideRMenu();
        addOrUpdOrgUrl(id, name, "2");

    } else if ("unfold" == parm){
        //隐藏右键菜单
        hideRMenu();
        //展开全部节点
        zTree.expandAll(true);

    } else if ("fold" == parm){
        //隐藏右键菜单
        hideRMenu();
        viewExpandOrFoldTree(false, true);
    }

}

/**
 * 展开或折叠树
 * expandFlag : true 表示 展开 节点   false 表示 折叠 节点
 * sonSign： true 表示 全部子孙节点 进行与 expandFlag 相同的操作
 *           false 表示 只影响此节点，对于其 子孙节点无任何影响
 */
function viewExpandOrFoldTree(expandFlag, sonSign) {
    var zTree = $.fn.zTree.getZTreeObj("treeContainer");
    //获取选中的节点
    var node = zTree.getSelectedNodes();
    //唯一标识
    var id = node[0].id;
    var name = node[0].name;
    if (node.length>0) {
        zTree.expandNode(node[0], expandFlag, sonSign, true);
    }
}

/**
 * 异步刷新节点树
 */
function reAsyncChildNodes() {
    var treeObj = $.fn.zTree.getZTreeObj("treeContainer");
    treeObj.reAsyncChildNodes(null, "refresh");
}

/**
 * 删除选中的节点
 */
function delNode() {
    var zTree = $.fn.zTree.getZTreeObj("treeContainer");
    //获取选中的节点
    var node = zTree.getSelectedNodes();
    //唯一标识
    var id = node[0].id;
    var name = node[0].name;
    addOrUpdOrgUrl
    //删除选中的子节点
    // zTree.removeChildNodes(node);
    zTree.removeNode(node[0]);
    //reAsyncChildNodes();
}

/**
 * 删除一个机构
 * @param id 唯一标识id
 * @param name 机构名
 * 如果返回 false，zTree 将不删除节点，也无法触发 onRemove 事件回调函数
 */
function delOrg(id, name) {
    if (checkNull(id) || checkNull(name)){
        alert("请求错误");
        return;
    }
    if (id == "00000000000000000000000000000000000"){
        alert("不能删除根节点");
        return;
    }
    //加载层
    var index = layer.load(0, {shade: false}); //0代表加载的风格，支持0-2
    //是否删除
    var isDel = false;
    if (!confirm("是否确认删除:" + name + "，删除后不可恢复，如果下级有子机构，也会同时删除。") ){
        return isDel;
    }

    var url = "/main/delOrg.php";
    $.ajax({
        url: url,
        type:"get",
        dataType:"json",
        data:{"id" : id},
        success:function(data){
            if (data.status == "success"){
                alert(data.msg);
                isDel = true;
                delNode();

            } else if (data.status == 'error'){
                alert(data.msg);
                isDel = false;
            } else {
                alert("未知情况");
                isDel = false;
            }
            //关闭弹出层
            layer.close(index);
        },
        error:function(e){
            //关闭弹出层
            layer.close(index);
            alert("错误！！" + e);
            isDel = false;
        }

    });

    return isDel;
}



/**
 * 定义的 zTree 容器的 jQuery 对象，以及右键树对象
 */
var zTreeObj, rMenu;
$(document).ready(function(){
    /**
     * 初始化ztree
     * 参数： 1 容器id
     *      2 设置的一些参数
     *      3 节点数据
     *      zNodes 来自后台，json数据
     */
    zTreeObj = $.fn.zTree.init($("#treeContainer"), setting, zNodes);
    rMenu = $("#rMenu");
    //自动展开树
    zTreeObj.expandAll(true);
});

/**
 * zTree 的参数配置，深入使用请参考 API 文档（setting 配置详解）
 * @type {{view: {fontCss: {color: string}, showIcon: boolean}, async: {enable: boolean, autoParam: string[], contentType: string, dataFilter: null, dataType: string, otherParam: {}, type: string, url: string}, data: {simpleData: {enable: boolean, idKey: string, pIdKey: string}}, callback: {onRightClick: onRightClick, onRemove: null, onClick: null, onAsyncError: zTreeOnAsyncError}}}
 */
var setting = {
    //字体颜色
    view: {
        //设置字体颜色
        fontCss : {color:"white"},
        //设置节点图标不显示
        showIcon: false
    },
    async:{
        //设置 zTree 是否开启异步加载模式
        enable: true,
        //异步加载时需要自动提交父节点属性的参数。[setting.async.enable = true 时生效]
        autoParam: ["id"],
        //Ajax 提交参数的数据类型
        contentType: "application/json",
        //用于对 Ajax 返回数据进行预处理的函数
        dataFilter:null,
        //Ajax 获取的数据类型
        dataType : "json",
        // Ajax 请求提交的静态参数键值对，可以是json或数组
        otherParam: {},
        //Ajax 的 http 请求模式
        type: "get",
        //Ajax 获取数据的 URL 地址
        url : ""
    },
    data: {
        simpleData: {
            //true / false 分别表示 使用 / 不使用 简单数据模式
            enable: true,
            //节点数据中保存唯一标识的属性名称
            idKey: "id",
            //节点数据中保存其父节点唯一标识的属性名称
            pIdKey: "pId"
        }
    },
    callback: {
        //点击右键后执行的函数,如果设置了该方法，且返回 false，将无法触发 onRightClick 事件回调函数。
        onRightClick : zTreeOnRightClick,
        //用于捕获删除节点之后的事件回调函数
        onRemove: null,
        //用于捕获节点被点击的事件回调函数
        onClick: zTreeOnClick,
        //用于捕获节点被删除之前的事件回调函数
        //beforeRemove:delOrg,
        //用于捕获异步加载出现异常错误的事件回调函数
        onAsyncError: zTreeOnAsyncError
    }
};

/**
 * 树节点 点击事件,将机构的信息展示
 * @param event 标准event对象
 * @param treeId 对应的树treeid
 * @param treeNode 被点击的节点json数据对象
 */
function zTreeOnClick(event, treeId, treeNode){
    // console.log("获取到被选中的树对象：");
    // console.log(treeNode);
    // console.log("被选中的ID：" + treeNode.id + "树节点名：" + treeNode.name);

    //加载层
    var index = layer.load(0, {shade: false}); //0代表加载的风格，支持0-2

    var url = "/main/getOrganization.php";
    $.ajax({
        url: url,
        type:"get",
        dataType:"json",
        data:{"id" : treeNode.id},
        success:function(data){
            if (data.status == "success"){
                var obj = data.object;
                if (obj != null){
                    //替换数据
                    replaceAppoint("nameOrgView", obj.name);
                    replaceAppoint("idOrgView", obj.id);
                    replaceAppoint("simpNameOrgView", obj.simpName);
                    replaceAppoint("enSimpNameOrgView", obj.enSimpName);
                    replaceAppoint("isRootOrgView", obj.isRoot + " | " + obj.isDepOrOrg);
                    replaceAppoint("typeOrgView", obj.type);
                    replaceAppoint("enNameOrgView", obj.enName);
                    replaceAppoint("orgDepOrgView", obj.orgDep);
                    replaceAppoint("fatherNameOrgView", obj.fatherName);
                    replaceAppoint("fatherorgNameOrgView", obj.fatherorgName);
                    replaceAppoint("levelAdministrativeOrgView", obj.levelAdministrative);
                    replaceAppoint("orgTypeOrgView", obj.orgType);
                    replaceAppoint("isSecretOrgView", obj.isSecret);
                    replaceAppoint("secretGradeOrgView", obj.secretGrade);
                    replaceAppoint("isAuthorizeOrgView", obj.isAuthorize);
                    replaceAppoint("callGradeOrgView", obj.callGrade);
                    replaceAppoint("responsibilityOrgView", obj.responsibility);
                    replaceAppoint("createHumOrgView", obj.createDate);
                    replaceAppoint("addressOrgView", obj.address);
                    replaceAppoint("phoneOrgView", obj.phone);
                    replaceAppoint("zipCodeOrgView", obj.zipCode);
                    replaceAppoint("remarkOrgView", obj.remark);
                    var img = obj.img;
                    if (img != null && img != ''){
                        img = "<img src=\"/main/getOrgImgHred?id=" + img + "\" style=\"width:75px;height:75px;\">"
                    } else {
                        img = "<img src=\"/img/common/nationalEmblem.png\" style=\"width:75px;height:75px;\">"
                    }
                    replaceAppoint("imgOrgView", img);

                    //展示岗位数据
                    postView(1, 10, obj.id);

                    //清空岗位隐藏数据
                    $("#postCheckId").val("");
                    //清空用户
                    $("#userData").empty();
                    var html = "<tr><td colspan='6'><div style='text-align:center; color:#fff'>暂无数据</div></td></tr>";
                    replaceAppoint("userData", html);
                }

            } else if (data.status == 'error'){
                alert(data.msg);
            } else {
                alert("未知情况");
            }
            //关闭弹出层
            layer.close(index);
        },
        error:function(e){
            //关闭弹出层
            layer.close(index);
            alert("错误！！" + e);
        }

    });
}



/**
 * 用于捕获异步加载出现异常错误的事件回调函数
 * @param event 标准的 js event 对象
 * @param treeId 对应 zTree 的 treeId，便于用户操控
 * @param treeNode 进行异步加载的父节点 JSON 数据对象
 * @param XMLHttpRequest XMLHttpRequest 对象
 * @param textStatus  success，error
 * @param errorThrown errorThrown 只有当异常发生时才会被传递
 */
function zTreeOnAsyncError(event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) {
    alert("加载出现错误:" + treeId + XMLHttpRequest);
}


/**
 * 操作岗位，新增 更新 查看 等
 * @param operationType 操作类型, add 新增 upd 更新  query 查询
 * @param postId 岗位ID
 */
function operationPostUrl(operationType, postId){
    var orgId = $("#idOrgView").text();
    if (checkNull(orgId)){
        alert("请选择一个机构再执行添加岗位操作");
        return;
    }
    if ("query" == operationType || "upd" == operationType){
        if (checkNull(postId)){
            alert("岗位ID为空");
            return;
        }
    }

    var isConfirm = true;
    if ("add" == operationType){
        var name = $("#nameOrgView").text();
        isConfirm = confirm("是否确认在 " + name + " 新增岗位");
    }

    if (isConfirm == true){
        //iframe层
        layer.open({
            type: 2, //0（信息框，默认）1（页面层）2（iframe层）3（加载层）4（tips层）
            title: '新增岗位', //title支持三种类型的值，若你传入的是普通的字符串，如title :'我是标题'，那么只会改变标题文本；若你还需要自定义标题区域样式，那么你可以title: ['文本', 'font-size:18px;']，数组第二项可以写任意css样式；如果你不想显示标题栏，你可以title: false
            shadeClose: false, //是否点击遮罩关闭,默认：false,如果你的shade是存在的，那么你可以设定shadeClose来控制点击弹层外区域关闭
            shade: 0.8, //默认是0.3透明度的黑色背景（'#000'）。如果你想定义别的颜色，可以shade: [0.8, '#393D49']；如果你不想显示遮罩，可以shade: 0
            area: ['80%', '70%'], //宽高
            anim:1, // 弹出动画 默认：0 平滑放大。默认 1 从上掉落 2 从最底部往上滑入 3从左滑入 4从左翻滚 5渐显 6抖动
            resize:true, // 是否允许拉伸,默认情况下，你可以在弹层右下角拖动来拉伸尺寸。如果对指定的弹层屏蔽该功能，设置 false即可
            //success:null, //层弹出后的成功回调方法
            //cancel:null, //右上角关闭按钮触发的回调 该回调携带两个参数，分别为：当前层索引参数（index）、当前层的DOM对象（layero），默认会自动触发关闭。如果不想关闭，return false即可
            end:null, // 层销毁后触发的回调,无论是确认还是取消，只要层被销毁了，end都会执行，不携带任何参数
            content: '/main/postAddOrUpdUrl.php?orgId=' + orgId + "&operationType=" + operationType + "&postId=" + postId //iframe的url
        });
    } else {
        return;
    }
}

/**
 * 展示岗位信息
 * @param page 页码
 * @param limit 每页显示数量
 * @param orgId 机构部门主键
 */
function postView(page, limit, orgId){
    if (page == null || limit == null){
        page = 1;
        limit = 10;
    }

    //加载层
    var index = layer.load(0, {shade: false}); //0代表加载的风格，支持0-2
    var url = "/main/getPostOnOrgPage.php";
    $.ajax({
        url: url,
        type:"get",
        dataType:"json",
        data:{"page" : page, "limit" : limit, "orgId" : orgId},
        success:function(data){
            if (data.status == "success"){
                var obj = data.object;

                //遍历并且展示数据
                var html = "";
                if (obj.list == null || obj.list.length == 0){
                    $("#postData").empty();
                    html = "<tr><td colspan='2'><div style='text-align:center; color:#fff'>暂无数据</div></td></tr>";
                } else {
                    for (var i = 0; i < obj.list.length; i ++){
                        var post = obj.list[i];
                        var isLeader = post.isLeader;
                        if (isLeader == "1"){
                            isLeader = "领导职务";
                        } else if (isLeader == "2"){
                            isLeader = "非领导职务";
                        } else {
                            isLeader = "";
                        }
                        html += "<tr style='cursor:pointer' onclick=\"postOnclickTr(\'" + post.id + "\')\" id='" + post.id + "'>"
                            + "<td  >" + post.name + "</td>"
                            + "<td  >" + isLeader + "</td>"
                            + "<td>"
                            + "<div class=\"tpl-table-black-operation am-fr\">"
                            + "<a href=\"javascript:;\" onclick=\"operationPostUrl(\'query\',\'"  + post.id + "\')\">"
                            + "<i class=\"am-icon-pencil\" ></i> 查看"
                            + "</a>"

                            + "<a href=\"javascript:;\" onclick=\"operationPostUrl(\'upd\',\'" + post.id + "\')\" >"
                            + "<i class=\"am-icon-pencil\" ></i> 修改"
                            + "</a>"

                            + "<a href=\"javascript:;\" class=\"tpl-table-black-operation-del\" onclick=\"delPost(\'" + post.id + "\',\'" + post.name + "\')\" >"
                            + "<i class=\"am-icon-pencil\" ></i> 删除"
                            + "</a>"

                            + "</div>"
                            + "</td>"
                            + "</tr>";
                    }
                }
                replaceAppoint("postData", html);

                //分页后对岗位的隐藏数据清空
                $("#postCheckId").val("");

                /**
                 * 纯粹的JS分页插件，代码缺点：JS操作DOM冗余太多，太繁琐
                 */
                //对分页数据先进行清理
                $("#postPage").empty();
                pageUtil.initPage('postPage',{
                    totalCount:obj.total,//总页数，一般从回调函数中获取。如果没有数据则默认为1页
                    curPage:obj.pageNum,//初始化时的默认选中页，默认第一页。如果所填范围溢出或者非数字或者数字字符串，则默认第一页
                    showCount:5,//分页栏显示的数量
                    pageSizeList:[5,10,15,20,25,30],//自定义分页数，默认[5,10,15,20,50]
                    defaultPageSize:10,//默认选中的分页数,默认选中第一个。如果未匹配到数组或者默认数组中，则也为第一个
                    isJump:true,//是否包含跳转功能，默认false
                    isPageNum:false,//是否显示分页下拉选择，默认false
                    isPN:true,//是否显示上一页和下一面，默认true
                    isFL:true,//是否显示首页和末页，默认true
                    jump:function(curPage,pageSize){//跳转功能回调，传递回来2个参数，当前页和每页大小。如果没有设置分页下拉，则第二个参数永远为0。这里的this被指定为一个空对象，如果回调中需用到this请自行使用bind方法
                        //console.log(curPage,pageSize);
                        var id = $("#idOrgView").text();
                        if (checkNull(id)){
                            alert("请先选择一个机构");
                            return;
                        }
                        //对用户数据在翻页的时候清空
                        $("#userData").empty();
                        var html = "<tr><td colspan='6'><div style='text-align:center; color:#fff'>暂无数据</div></td></tr>";
                        replaceAppoint("userData", html);
                        postView(curPage, 10, id);
                    }
                });


            } else if (data.status == 'error'){
                alert(data.msg);
            } else {
                alert("未知情况");
            }
            //关闭弹出层
            layer.close(index);
        },
        error:function(e){
            //关闭弹出层
            layer.close(index);
            alert("错误！！" + e);
        }

    });

}



/**
 * 删除岗位
 * @param postId 岗位ID
 * @param postName 岗位名
 */
function delPost(postId, postName) {
    if (checkNull(postId)){
        alert("未获取到岗位ID");
        return;
    }

    //加载层
    var index = layer.load(0, {shade: false}); //0代表加载的风格，支持0-2
    //是否删除
    var isDel = false;
    if (!confirm("是否确认删除:" + postName + "，警告：删除后不可恢复。") ){
        return isDel;
    }

    var url = "/main/delPost.php";
    $.ajax({
        url: url,
        type:"get",
        dataType:"json",
        data:{"postId" : postId},
        success:function(data){
            if (data.status == "success"){
                alert(data.msg);

                var zTree = $.fn.zTree.getZTreeObj("treeContainer");
                //获取选中的节点
                var node = zTree.getSelectedNodes();
                //展示岗位数据
                postView(1, 10, node[0].id);
                //清空岗位隐藏数据
                $("#postCheckId").val("");

            } else if (data.status == 'error'){
                alert(data.msg);
            } else {
                alert("未知情况");
            }
            //关闭弹出层
            layer.close(index);
        },
        error:function(e){
            //关闭弹出层
            layer.close(index);
            alert("错误！！" + e);
        }

    });
}


/**
 * 设置tr的样式
 * @param id  被点击的那个tr的值
 */
function postOnclickTr(id) {
    //var thisObj = $(obj);//js对象转jquery对象
    //将选中的值放到临时位置
    //console.log($(obj).attr('id'));
    $("#postCheckId").val(id);
    $("tr").removeClass("am-btn-default am-btn-success");
    $("#" + id).addClass("am-btn-default am-btn-success");
    userView(1, 5, id);
}



/**
 * 新增一个用户，弹出一个新增用户页面
 */
function addUsertUrl(){

    var postCheckId = $("#postCheckId").val();
    if (checkNull(postCheckId)){
        alert("请选择一个岗位再执行添加用户操作");
        return;
    }

    //iframe层
    layer.open({
        type: 2, //0（信息框，默认）1（页面层）2（iframe层）3（加载层）4（tips层）
        title: '新增岗位', //title支持三种类型的值，若你传入的是普通的字符串，如title :'我是标题'，那么只会改变标题文本；若你还需要自定义标题区域样式，那么你可以title: ['文本', 'font-size:18px;']，数组第二项可以写任意css样式；如果你不想显示标题栏，你可以title: false
        shadeClose: false, //是否点击遮罩关闭,默认：false,如果你的shade是存在的，那么你可以设定shadeClose来控制点击弹层外区域关闭
        shade: 0.8, //默认是0.3透明度的黑色背景（'#000'）。如果你想定义别的颜色，可以shade: [0.8, '#393D49']；如果你不想显示遮罩，可以shade: 0
        area: ['80%', '70%'], //宽高
        anim:1, // 弹出动画 默认：0 平滑放大。默认 1 从上掉落 2 从最底部往上滑入 3从左滑入 4从左翻滚 5渐显 6抖动
        resize:true, // 是否允许拉伸,默认情况下，你可以在弹层右下角拖动来拉伸尺寸。如果对指定的弹层屏蔽该功能，设置 false即可
        //success:null, //层弹出后的成功回调方法
        //cancel:null, //右上角关闭按钮触发的回调 该回调携带两个参数，分别为：当前层索引参数（index）、当前层的DOM对象（layero），默认会自动触发关闭。如果不想关闭，return false即可
        end:null, // 层销毁后触发的回调,无论是确认还是取消，只要层被销毁了，end都会执行，不携带任何参数
        content: '/main/addUsertUrl.php?id=' + postCheckId //iframe的url
    });

}




/**
 * 展示用户信息
 * @param page 页码
 * @param limit 每页显示数量
 * @param postId 岗位主键
 */
function userView(page, limit, postId){
    if (page == null || limit == null){
        page = 1;
        limit = 10;
    }

    //加载层
    var index = layer.load(0, {shade: false}); //0代表加载的风格，支持0-2
    var url = "/main/getUserOnPostPage.php";
    $.ajax({
        url: url,
        type:"get",
        dataType:"json",
        data:{"page" : page, "limit" : limit, "postId" : postId},
        success:function(data){
            if (data.status == "success"){
                var obj = data.object;

                //遍历并且展示数据
                var html = "";
                if (obj.list == null || obj.list.length == 0){
                    $("#userData").empty();
                    html = "<tr><td colspan='6'><div style='text-align:center; color:#fff'>暂无数据</div></td></tr>";
                } else {
                    for (var i = 0; i < obj.list.length; i ++){
                        var user = obj.list[i];

                        var img = user.imgHred;
                        if (img != null && img != ''){
                            img = "<img src=\"/user/getImgHred?id=" + img + "\" style=\"width:35px;height:35px;\">"
                        } else {
                            img = "<img src=\"/img/common/worker.png\" style=\"width:35px;height:35px;\">"
                        }

                        html += "<tr>"
                            + "<td>" + img + "</td>"
                            + "<td>" + user.name + "</td>"
                            + "<td>" + nullHandle(user.isDimission) + "</td>"
                            + "<td>" + nullHandle(user.administrativeType) + "</td>"

                            + "<td>"
                            + "<div class=\"tpl-table-black-operation am-fr\">"
                            + "<a href='javascript:;' onclick='operatingUser(\"" + user.id + "\",\"" + postId + "\",\"" + 1 + "\")'>"
                            + "<i class=\"am-icon-pencil\" ></i> 查看"
                            + "</a>&nbsp;"

                            + "<a href='javascript:;' onclick='operatingUser(\"" + user.id + "\",\"" + postId + "\",\"" + 2 + "\")'>"
                            + "<i class=\"am-icon-pencil\" ></i> 修改"
                            + "</a>&nbsp;"

                            + "<a href='javascript:;' onclick='delUser(\"" + user.id + "\",\"" + postId + "\",\"" + 2 + "\")' class=\"tpl-table-black-operation-del\">"
                            + "<i class=\"am-icon-pencil\" ></i> 删除"
                            + "</a>&nbsp;"

                            + "<a href='javascript:;' onclick='commmendOn(\"" + user.id + "\",\"" + postId + "\",\"" + 2 + "\")' >"
                            + "<i class=\"am-icon-pencil\" ></i> 嘉奖情况"
                            + "</a>&nbsp;"

                            + "<a href='javascript:;' onclick='punishOn(\"" + user.id + "\",\"" + postId + "\",\"" + 2 + "\")' >"
                            + "<i class=\"am-icon-pencil\" ></i> 违纪情况"
                            + "</a>&nbsp;"

                            + "<a href='javascript:;' onclick='relationshipOn(\"" + user.id + "\",\"" + postId + "\",\"" + 2 + "\")' >"
                            + "<i class=\"am-icon-pencil\" ></i> 人际"
                            + "</a>&nbsp;"

                            + "<a href='javascript:;' onclick='imgOn(\"" + user.id + "\",\"" + postId + "\",\"" + 2 + "\")' >"
                            + "<i class=\"am-icon-pencil\" ></i> 图片"
                            + "</a>&nbsp;"

                            + "<a href='javascript:;' onclick='resumeOn(\"" + user.id + "\",\"" + postId + "\",\"" + 2 + "\")' >"
                            + "<i class=\"am-icon-pencil\" ></i> 履历"
                            + "</a>&nbsp;"

                            + "</div>"
                            + "</td>"
                            + "</tr>";
                    }
                }
                replaceAppoint("userData", html);


                /**
                 * 纯粹的JS分页插件，代码缺点：JS操作DOM冗余太多，太繁琐
                 */
                //对分页数据先进行清理
                $("#userPage").empty();
                pageUtil.initPage('userPage',{
                    totalCount:obj.total,//总页数，一般从回调函数中获取。如果没有数据则默认为1页
                    curPage:obj.pageNum,//初始化时的默认选中页，默认第一页。如果所填范围溢出或者非数字或者数字字符串，则默认第一页
                    showCount:5,//分页栏显示的数量
                    pageSizeList:[5,10,15,20,25,30],//自定义分页数，默认[5,10,15,20,50]
                    defaultPageSize:10,//默认选中的分页数,默认选中第一个。如果未匹配到数组或者默认数组中，则也为第一个
                    isJump:true,//是否包含跳转功能，默认false
                    isPageNum:false,//是否显示分页下拉选择，默认false
                    isPN:true,//是否显示上一页和下一面，默认true
                    isFL:true,//是否显示首页和末页，默认true
                    jump:function(curPage,pageSize){//跳转功能回调，传递回来2个参数，当前页和每页大小。如果没有设置分页下拉，则第二个参数永远为0。这里的this被指定为一个空对象，如果回调中需用到this请自行使用bind方法
                        //console.log(curPage,pageSize);
                        userView(curPage, 5, postId);
                    }
                });


            } else if (data.status == 'error'){
                alert(data.msg);
            } else {
                alert("未知情况");
            }
            //关闭弹出层
            layer.close(index);
        },
        error:function(e){
            //关闭弹出层
            layer.close(index);
            alert("错误！！" + e);
        }

    });
}


/**
 * 查看用户详情或编辑用户
 * @param userId 用户ID
 * @param postId 岗位ID
 * @param type 1 查看 2 修改
 */
function operatingUser(userId, postId, type){
    if (checkNull(userId) || checkNull(postId) || checkNull(type)){
        alert("缺失重要参数，请刷新页面后重试");
        return;
    }
    var title = "";
    if (type == "1"){
        title = "用户详情";
    } else {
        title = "修改";
    }
    //iframe层
    layer.open({
        type: 2, //0（信息框，默认）1（页面层）2（iframe层）3（加载层）4（tips层）
        title: title, //title支持三种类型的值，若你传入的是普通的字符串，如title :'我是标题'，那么只会改变标题文本；若你还需要自定义标题区域样式，那么你可以title: ['文本', 'font-size:18px;']，数组第二项可以写任意css样式；如果你不想显示标题栏，你可以title: false
        shadeClose: false, //是否点击遮罩关闭,默认：false,如果你的shade是存在的，那么你可以设定shadeClose来控制点击弹层外区域关闭
        shade: 0.8, //默认是0.3透明度的黑色背景（'#000'）。如果你想定义别的颜色，可以shade: [0.8, '#393D49']；如果你不想显示遮罩，可以shade: 0
        area: ['80%', '70%'], //宽高
        anim:5, // 弹出动画 默认：0 平滑放大。默认 1 从上掉落 2 从最底部往上滑入 3从左滑入 4从左翻滚 5渐显 6抖动
        resize:true, // 是否允许拉伸,默认情况下，你可以在弹层右下角拖动来拉伸尺寸。如果对指定的弹层屏蔽该功能，设置 false即可
        //success:null, //层弹出后的成功回调方法
        //cancel:null, //右上角关闭按钮触发的回调 该回调携带两个参数，分别为：当前层索引参数（index）、当前层的DOM对象（layero），默认会自动触发关闭。如果不想关闭，return false即可
        end:null, // 层销毁后触发的回调,无论是确认还是取消，只要层被销毁了，end都会执行，不携带任何参数
        content: '/user/operatingUser.php?userId=' + userId + '&postId=' + postId + "&type=" + type//iframe的url
    });
}

/**
 * 删除用户
 * @param userId 用户id
 * @param postId 岗位id
 */
function delUser(userId, postId) {
    if (checkNull(userId) || checkNull(postId)){
        alert("数据不完整，请刷新后重试");
        return;
    }

    var msg = "你确认删除该用户吗？注意：删除后不可恢复!";
    if (confirm(msg) == true){
        //加载层
        var index = layer.load(0, {shade: false}); //0代表加载的风格，支持0-2

        var url = "/user/delUser.php";
        $.ajax({
            url: url,
            type:"post",
            dataType:"json",
            data:{'userId':userId, 'postId':postId},
            success:function(data){
                if (data.status == "success"){
                    alert("用户删除成功");
                    userView(1, 5, postId);

                } else if (data.status == 'error'){
                    alert(data.msg);
                } else {
                    alert("未知情况");
                }
                //关闭弹出层
                layer.close(index);
            },
            error:function(e){
                //关闭弹出层
                layer.close(index);
                alert("错误！！" + e);
            }

        });
    } else {
        return false;
    }

}


/**
 * 跳转到 嘉奖情况 页面
 * @param userId 用户id
 * @param postId 岗位id
 */
function commmendOn(userId, postId) {
    if (checkNull(userId) || checkNull(postId)){
        alert("请求错误，请刷后重试");
    }
    window.open("/user/commendUrl.php?userId=" + userId + "&postId=" + postId);
}

/**
 * 跳转到 违纪情况 页面
 * @param userId 用户id
 * @param postId 岗位id
 */
function punishOn(userId, postId) {
    if (checkNull(userId) || checkNull(postId)){
        alert("请求错误，请刷后重试");
    }
    window.open("/user/punishUrl.php?userId=" + userId + "&postId=" + postId);
}


/**
 * 跳转到 履历情况 页面
 * @param userId 用户id
 * @param postId 岗位id
 */
function resumeOn(userId, postId) {
    if (checkNull(userId) || checkNull(postId)){
        alert("请求错误，请刷后重试");
    }
    window.open("/user/resumeUrl.php?userId=" + userId + "&postId=" + postId);
}

/**
 * 跳转到 用户图片 页面
 * @param userId 用户id
 * @param postId 岗位ID
 */
function imgOn(userId, postId){
    if (checkNull(userId) || checkNull(postId)){
        alert("请求错误，请刷后重试");
    }
    window.open("/user/imgUrl.php?userId=" + userId + "&postId=" + postId);

}

/**
 * 跳转到 用户关系 页面
 * @param userId 用户id
 * @param postId 岗位ID
 */
function relationshipOn(userId, postId) {
    if (checkNull(userId) || checkNull(postId)){
        alert("请求错误，请刷后重试");
    }
    window.open("/user/relationshipUrl.php?userId=" + userId + "&postId=" + postId);
}